Cómo definimos la programación orientada a objetos. Qué elementos deben existir en POO ¿Qué son objetos, métodos y mensajes?

La programación orientada a objetos es un método de implementación en el que los programas se organizan como colecciones cooperativas de objetos, cada uno de los cuáles representan una instancia de alguna clase, y cuyas clases son todos miembros de una jerarquía de clases unidas mediante relaciones de herencias. Tres aspectos importantes: 1) Utiliza objetos, no algoritmos, 2) Cada objeto es una instancia de una clase, 3) Las clases se relacionan unas con otras por medio de relaciones de herencia. Los elementos que deben existir son: elementos de datos, junto a las funciones asociadas para operar dichos datos, la herencia y los mensajes, medio por el cual se comunican los objetos. El objeto es la combinación en una sola unidad de datos y funciones que operan sobre esos datos. Las funciones que se encuentran en el objeto son los únicos medios para acceder a los datos que se encuentran en dicho objeto, no pudiéndose acceder a dichos datos de forma directa. Los datos se encuentran ocultos, asegurándose que no puedan ser modificados por funciones externas al objeto. Los datos y las funciones asociados que dice que están encapsulados en una única entidad o módulo. El objeto contiene atributos (datos o variables) que describen el estado del mismo y acciones (mensajes) que asocian a dicho objeto con el mundo real, cambiando el estado del mismo. Las funciones miembros que se encuentran en los objetos se denominan métodos. Estos métodos residen en el objeto y determina cómo actúan los objetos cuando reciben un mensaje. Un mensaje es la acción que hace un objeto. Un método es el procedimiento que se invoca para actuar sobre un objeto y especifica cómo se ejecuta el mensaje. El conjunto de mensajes a los cuales puede responder un objeto se denomina protocolo del objeto. Los mensajes que recibe el objeto son los únicos conductos que lo conectan con el mundo externo. Los mensajes se mueven de un objeto a otro. Cuando los objetos ya no son necesarios, se los borra y se los elimina de la memoria. Son creados a medida que se los necesitan.

¿Cómo es la estructura interna de un objeto, atributos y métodos?

Consta de dos componentes básicos: atributos y métodos. Los atributos describen el estado de un objeto. El atributo consta de dos partes: un nombre y un valor. Los objetos simples contienen atributos primitivos (entero, carácter) y los complejos pueden tener arrays, listas. Los métodos describen el comportamiento asociado a un objeto. Representan las acciones que pueden realizarse por un objeto o sobre un objeto. La ejecución del método puede llevar al cambio de estado del objeto o del dato del objeto. El método posee un nombre y un cuerpo que realiza la acción. El método dentro del objeto se activa por un mensaje enviado por otro objeto al objeto que contiene el método.

¿Qué son las clases? Cuáles son sus propósitos principales.?¿Diferencia con objeto? Comparación con tablas de datos. Que es un constructor y un destructor?

La clase es la construcción del lenguaje utilizada para definir los tipos abstractos de datos en lenguajes de programación orientado a objetos. Se puede definir a la clase como una descripción abstracta de un grupo de objetos. Una clase es una estructura que contiene datos y procedimientos, que son capaces de operar sobre esos datos. Diferencia con objeto: Una clase describe una familia de elementos similares. Si se tiene muchos objetos del mismo tipo, solo se tienen que definir las características generales de ese tipo una vez, en lugar de hacerlo con cada objeto. A partir de una clase se pueden definir un número de objetos. Un objeto es una instancia de una clase. Al igual que una clase, una tabla define los nombres y los tipos de datos de la información que contenga. La principal diferencia es que las clases contienen métodos, además de las definiciones de datos. Una clase es un módulo en la que está permitido conocer lo que hace la clase, pero no cómo lo hace. Hay dos operaciones típicas de cualquier clase: Constructor: una operación que crea un objeto y/o inicializa su estado. Destructor: Una operación que libera el estado de un objeto y/o destruye el propio objeto. Los constructores y destructores son parte de la definición de una clase.

¿Cuál es la herencia? Cuál es su objetivo final de Jerarquía de clases y Jerarquía de herencia?

La herencia es la propiedad que permite a los objetos ser construidos a partir de otros objetos. Es la capacidad de un objeto para utilizar las estructuras de datos y métodos de antepasados. El objetivo final es la reutilización de un código ya desarrollado. El principio en que se basa la división de clases es la jerarquía compartiendo características comunes. La herencia supone una clase base y una jerarquía de clases que contienen las clases derivadas de la clase base. Las derivadas usan códigos de la clase base y añaden propios, e incluso cambia elementos de la clase base que considera que deben ser diferentes. Las clases que heredan propiedades de una clase base pueden a su vez servir como definiciones base de otras clases.